#include <vector_types.h>
#ifndef __CUDANODESTRUCT_H_
#define __CUDANODESTRUCT_H_

#define NEIGHBOURSIZE 10

typedef enum {
	None,
	Left,
	LeftRight
}RecursionFlags;

typedef struct __align__(4){
	unsigned char parent;	//1 byte
	unsigned char left;		//1 byte
	unsigned char right;	//1 byte
	unsigned char state;	//1 byte
	unsigned char recurse;	//1 byte
							//5 bytes total = 2 x 4 byte reads (62.5%)
}cNode;

typedef struct __align__(16){
	float length;		//4 bytes
	float lengthBest;	//4 bytes
	float delta;		//4 bytes
	float likelihood;	//4 bytes
	float state[4];		//16 bytes
}pNode;					//32 bytes = 2 x 16 byte reads (100% efficiency)
#endif